package edu.tfh.s2.ehkbot.gerete;

import edu.tfh.s2.ehkbot.daten.AdressenDispatcher;
import edu.tfh.s2.ehkbot.daten.InitFactory;
import edu.tfh.s2.ehkbot.gerete.aktoren.MotorAktor;
import edu.tfh.s2.ehkbot.gerete.sensoren.Sensor;
import edu.tfh.s2.ehkbot.steuerung.Position;

/**
 * Der Greifarm mit den Segmenten und den Greifer.
 * @author s2zehn
 *
 */
public class Greifarm {

	private Greifer greifer;
	private Sensor kraftX;
	private Sensor kraftY;
	private Sensor kraftZ;
	private MotorAktor seg1;
	private MotorAktor seg2;
	private MotorAktor seg3;
	private Sensor winkelGeber;
	private MotorAktor yDreh;

	/**
	 * Konstruktor für Greifarm.
	 */
	public Greifarm() {
		InitFactory init = InitFactory.getInstance();
		String modul = "Greifarm";
		this.greifer = new Greifer();
		this.yDreh = init.getMotorAktor(AdressenDispatcher.getInstance().getAdresseFor(modul, "Ydreh"));
		this.seg1 = init.getMotorAktor(AdressenDispatcher.getInstance().getAdresseFor(modul, "seg1"));
		this.seg2 = init.getMotorAktor(AdressenDispatcher.getInstance().getAdresseFor(modul, "seg2"));
		this.seg3 = init.getMotorAktor(AdressenDispatcher.getInstance().getAdresseFor(modul, "seg3"));
		this.kraftX = init.getSensor(AdressenDispatcher.getInstance().getAdresseFor(modul, "kraftX"));
		this.kraftY = init.getSensor(AdressenDispatcher.getInstance().getAdresseFor(modul, "kraftY"));
		this.kraftZ = init.getSensor(AdressenDispatcher.getInstance().getAdresseFor(modul, "kraftZ"));
	}

	/**
	 * Bewege den Arm an die Position.
	 * @param pos Die Position an den der Arm bewegt werden soll.
	 */
	public void bewegeArm(Position pos) {
		// zu kompliziert für jetzt
		// TODO: real
	}

	/**
	 * Liefert den Greifer.
	 * @return den Greifer
	 */
	public Greifer getGreifer() {
		return greifer;
	}

}